package com.niuwa.p2p.service.business;

import java.util.Map;

import com.niuwa.p2p.core.mvc.entity.PageBeanWithTitle;
import com.niuwa.p2p.entity.business.LoanClaim;
import com.niuwa.p2p.entity.business.LoanClaimLog;
import com.niuwa.p2p.vo.business.LoanClaimOriginVo;
import com.niuwa.p2p.vo.business.LoanClaimTitleVo;
import com.niuwa.p2p.vo.business.LoanClaimVo;

public interface ILoanClaimService {

	/**
	 * 根据条件修改项目发布状态
	 * @param paramMap
	 * @throws Exception
	 */
	public void updateLoanClaimStatus(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * 直投发布
	 * @param projectNoList 项目编号集
	 * @param logBean 操作记录
	 * @throws Exception
	 */
	public int updateDirectPublish(String[] projectNoList,LoanClaimLog logBean);
	
	/**
	 * 后台匹配
	 * @param projectNoList 项目编号集
	 * @param logBean 操作记录
	 * @throws Exception
	 */
	public int updateBackMatch(String[] projectNoList,LoanClaimLog logBean);
	
	/**
	 * 退回审批系统
	 * @param projectNoList 项目编号集
	 * @param logBean 操作记录
	 * @throws Exception
	 */
	public int updateRejectProject(String[] projectNoList,LoanClaimLog logBean);
	
	/**
	 * 分页查询借款债权集合
	 * 根据paramMap，选取需要的借款债权集合 
	 * 
	 * @param paramMap 过滤得条件Map
	 * @return PageBean<LoanClaimTitleVo, LoanClaimVo> 借款债权Title信息与待匹配资金 分页信息集合
	 */
	public PageBeanWithTitle<LoanClaimTitleVo, LoanClaimVo> search(Map<String, Object> paramMap);

	/**
	 * 通过债权项目编号 选取单个借款债权详情  
	 * 
	 * @param  projectNo 项目编号 
	 * @return LoanClaimOriginVo 借款债权详情
	 * @throws Exception
	 */
	public LoanClaimOriginVo getClaimLoanOriginDetailByProjectNo(String projectNo) ;
	

	
	/**
	 * 取得借款债权Title的合计项目
	 * 
	 * @return LoanClaimTitleVo 借款债权Title的合计项目
	 */
	public LoanClaimTitleVo getLoanClaimTitleSummerItem();
	
	public LoanClaim selectByPrimaryKey(String projectNo);
}
